package com.media.system.service;

import com.media.system.common.core.domain.AjaxResult;
import com.media.system.service.dto.LoginRequest;
import com.media.system.service.dto.RegisterRequest;

/**
 * 登录服务接口
 * 
 * @author Claude
 * @since 2024-01-20
 */
public interface LoginService {

    /**
     * 用户登录
     * 
     * @param loginRequest 登录请求
     * @return 登录结果
     */
    AjaxResult login(LoginRequest loginRequest);

    /**
     * 用户注册
     * 
     * @param registerRequest 注册请求
     * @return 注册结果
     */
    AjaxResult register(RegisterRequest registerRequest);

    /**
     * 用户注销
     * 
     * @return 注销结果
     */
    AjaxResult logout();

    /**
     * 刷新令牌
     * 
     * @param refreshToken 刷新令牌
     * @return 新的访问令牌
     */
    AjaxResult refreshToken(String refreshToken);

    /**
     * 获取当前用户信息
     * 
     * @return 当前用户信息
     */
    AjaxResult getCurrentUserInfo();
}